<script setup>
import { ref, onMounted } from 'vue';
import * as echarts from 'echarts';

// 定义更完整的图表数据和配置项
const chartData = {
  // 图表标题
  title: {
    text: '迟到人次数据',
    left: 'center',
    textStyle: {
      color: '#333',
      fontSize: 20
    }
  },
  // 提示框组件
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'shadow'
    },
    formatter: '{b}<br/>{a}: {c}'
  },
  // 图例组件
  legend: {
    data: ['迟到人数'],
    top: '5%',
    left: 'right'
  },
  // 网格配置
  grid: {
    left: '3%',
    right: '4%',
    bottom: '3%',
    containLabel: true
  },
  // x 轴配置
  xAxis: {
    type: 'category',
    data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
    axisLabel: {
      rotate: 45, // 标签旋转角度
      interval: 0 // 强制显示所有标签
    },
    axisLine: {
      lineStyle: {
        color: '#999'
      }
    },
    axisTick: {
      show: false // 不显示刻度线
    }
  },
  // y 轴配置
  yAxis: {
    type: 'value',
    name: '人',
    axisLine: {
      lineStyle: {
        color: '#999'
      }
    },
    axisTick: {
      show: false // 不显示刻度线
    },
    splitLine: {
      lineStyle: {
        color: '#eee'
      }
    }
  },
  // 系列数据配置
  series: [
    {
      name: '人',
      type: 'bar',
      data: [1,3, 4, 4, 2, 4, 6, 2, 3, 1, 2, 1],
      itemStyle: {
        color: '#409EFF' // 条形颜色
      },
      barWidth: '30%' // 条形宽度
    }
  ]
};

// 创建 ref 用于获取 DOM 元素
const barChartRef = ref(null);

const initChart = () => {
  const chartDom = barChartRef.value;
  if (chartDom) {
    const myChart = echarts.init(chartDom);
    myChart.setOption(chartData);
  } else {
    console.error('未找到对应的 DOM 元素');
  }
};


onMounted(() => {
  initChart();
});

</script>

<template>
    <div ref="barChartRef" class="chart-container"></div>
</template>

<style lang="scss">
.chart-container {
  width: 100%;
  height: 400px;
}
</style>
